The present invention relates to a packet communication device, a packet communication system, a packet communication modules a data processor, and a data transfer system, each of which comprises at least two network controllers or two data communication channels.
There is known, as a communication device using a packet, a device used for an IP phone, etc., which exchanges audio data using IP (Internet Protocol) on the basis of Ethernet. This kind of packet communication device comprises a CPU, two Ethernet controllers, a transfer control circuit, and a memory. As a method for reducing the number of Ethernet cables which are connected from the HUB, the following method is adopted: one Ethernet controller is connected to a HUB via Ethernet; the other Ethernet controller is connected to a PC (personal computer) via Ethernet; and the HUB is connected to the PC through the communication device. This packet communication device is so devised that if a destination of a packet received via each Ethernet is the communication device, the received packet is processed here just as it is, whereas if a destination of the received packet is not the communication device, the destination is identified, and thereby the packet is transferred to the other Ethernet if necessary. As a result, this kind of packet communication device can transfer a packet transmitted from the HUB, including received electronic mail and Internet information, a destination of which is the PC, to the Ethernet on the PC side; and at the same time, the packet communication device can transfer a packet from the PC side, including transmitted electronic mail and Internet access, to the HUB side. Further, the packet communication device can realize telephone functions by transmitting voice inputted from a handset as audio data, and by outputting received audio data from a speaker as voice. In this case, as packets which are transmitted by the Ethernet controller connected to the Ethernet on the HUB side, there are two kinds of packets: a transmit packet as audio data, which is transmitted by the packet communication device to realize an IP phone; and a transmit packet transmitted from the PC. Therefore, the Ethernet controller on the HUB side requires arbitration processing that arbitrates between a transmit packet and a transfer packet.
In this case, because the IP phone exchanges audio data which requires real-time processing, it is necessary to transmit the audio-data packet in preference to the packet transmitted from the PC side. Accordingly, a transmit packet takes precedence over a transfer packet, and thereby is transmitted on a priority basis. However, the IP phone basically transmits one packet every 10 to 20 ms, which means that the number of transmitted packets is few. Therefore, this seldom hinders a packet from the PC side, which requires real-time processing to a relatively small extent, from being transferred. Nevertheless, when the number of packets from the PC side increases, there is a possibility that a transfer buffer which holds transfer packets will overflow.
For this reason, as described in Japanese Patent Laid-open No. Hei 5-316147, it is possible to transmit a packet (transmit packet), the priority order of which is high, on a priority basis by providing a buffer for holding transmit packets on a priority order basis, and by connecting nodes, which transmit packets held in each buffer in arithmetic progression, in a ring. In addition to it, giving an opportunity of transmission to even a packet (transfer packet), the priority order of which is low, enables the adoption of a configuration that prevents a transmit buffer from overflowing.
In this connection, examples of an external interface circuit of the CPU include an external interface circuit comprising two network controllers. Here, in order to overcome the difference between a communication rate and a data transfer rate on the CPU side, each of the network controllers comprise the following buffers: a transmit buffer that temporarily stores transmit data from the CPU side and gives the transmit data to a network controller; and a receive buffer that temporarily stores reception packet from the network controller and gives the reception packet to the CPU side.
In addition, for the purpose of improving the capability of system processing, and response time, on the CPU side when communication traffic through the network controller increases, the technology that makes the capacity of the transmit buffer and the receive buffer variable is described in each of Japanese Patent Laid-Open Nos. Hei 7-28751, Hei 11-110188, and Hei 6-202974.